package com.example.mapper;

import com.example.entity.SysUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface UserMapper {

    // 使用存储过程查询用户信息
    void selectUserById(SysUser user);

    // 使用存储过程查询用户信息，使用Map来传参
    // 需要注意，由于select_user_by_id 这个存储过程只有出参，没有返回值，因此这个方法的返回值永远为null
    // 在实际的开发中一定要避免这中错误的写法，正确的写法应该将此方法的返回值定义为void，避免误导
    Map<String, Object> selectUserByIdWithMap(Map<String, Object> map);

    // 使用存储过程进行分页查询
    List<SysUser> selectUserPage(Map<String, Object> params);

    // 保存用户信息和角色关联信息
    int insertUserAndRoles(@Param("user") SysUser user, @Param("roleIds") String roleIds);

    // 根据用户id 删除用户和用户的角色信息
    int deleteUserById(Long id);
}
